package junior.util.function;

import junior.util.exception.ExceptionUtils;

/**
 * 将Exception转换为CheckedException的TriConsumer
 * @author WuBo
 * @date 2019年11月20日
 * @param <F> first
 * @param <S> second
 * @param <T> third
 */
@FunctionalInterface
public interface CheckedTriConsumer<F, S, T> extends TriConsumer<F, S, T> {

	@Override
	default void accept(F f, S s, T t) {
		try {
			acceptThrows(f, s, t);
        } catch (final Exception e) {
            throw ExceptionUtils.wrap2Runtime(e);
        }
	}

	void acceptThrows(F f, S s, T t) throws Exception;
}
